/**
 * 发送ajax异步请求 get
 * @param {String}   url 请求地址
 * @param {String}   params 请求参数
 * @param {Function} callback 回调函数
 * @param {Object}   header 请求头
 * @param {Stirng}   dataType 返回的数据类型
 */
function get(url, params, callback, headers = {}, dataType = 'json') {
    // 1.创建xhr对象
    const xhr = new XMLHttpRequest
    // 2.监控请求状态
    xhr.onreadystatechange = () => {
        if (xhr.readyState === 4) {
            if (xhr.status === 200) {
                let res = xhr.responseText
                switch (dataType) {
                    case 'json':
                        res = JSON.parse(res)
                        break;

                    default:
                        break;
                }
                callback(res)
            } else {
                console.log('有错误：', xhr.status)
            }
        }
    }
    // 3.设置请求方式、请求地址
    xhr.open('get', `${url}?${params}`)
    for (let key in headers) {
        xhr.setRequestHeader(key, headers[key])
    }
    // 4.发送请求
    xhr.send(null)
}

/**
 * 发送ajax异步请求 post
 * @param {String}   url 请求地址
 * @param {String}   params 请求参数
 * @param {Function} callback 回调函数
 * @param {Object}   header 请求头
 * @param {Stirng}   dataType 返回的数据类型
 */

function post(url, params, callback, headers = {}, dataType = 'json') {
    // 1.创建xhr对象
    const xhr = new XMLHttpRequest
    // 2.监控请求状态
    xhr.onreadystatechange = () => {
        if (xhr.readyState === 4) {
            if (xhr.status === 200) {
                let res = xhr.responseText
                switch (dataType) {
                    case 'json':
                        res = JSON.parse(res)
                        break;

                    default:
                        break;
                }
                callback(res)
            } else {
                console.log('有错误', xhr.status)
            }
        }
    }
    // 3.设置请求方式、请求地址
    xhr.open('post', url)
    xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded')
    for (let key in headers) {
        xhr.setRequestHeader(key, headers[key])
    }
    // 4.发送请求
    xhr.send(params)
}
